package com.spzx.common.core.utils;

import com.github.pagehelper.PageHelper;
import com.spzx.common.core.utils.sql.SqlUtil;
import com.spzx.common.core.web.page.PageDomain;
import com.spzx.common.core.web.page.TableSupport;

/**
 * 分页工具类
 *
 * @author spzx
 */
public class PageUtils extends PageHelper
{
    /**
     * 设置请求分页数据
     */
    public static void startPage()
    {
        PageDomain pageDomain = TableSupport.buildPageRequest(); //通过原生HttpServletRequest   getParameter("") 方法，获取参数值，封装到PageDomain
        Integer pageNum = pageDomain.getPageNum(); //第几页
        Integer pageSize = pageDomain.getPageSize(); //每页条数
        String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); //排序字段
        Boolean reasonable = pageDomain.getReasonable(); //分页合理化，给负数页码，会自动跳转到第一页。给一个很大页码不存在，会跳转到最后一页。
        //底层创建Page对象，封装分页信息。利用ThreadLocal与当前线程进行绑定。
        PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable); //调用分页插件
    }

    /**
     * 清理分页的线程变量
     */
    public static void clearPage()
    {
        PageHelper.clearPage();
    }
}
